public class recursion {
//无终止条件的递归
//    public static void function(int a) {
//        function(a);
//    }
//改进
    public static void function(int a) {
        if(a == 1){
            System.out.println(a);
            return;
        }
        function(a-1);
        System.out.println(a);
    }
//求阶乘
    public static int fac(int n) {
        if(n == 1) {
            return 1;
        }
        return n * fac(n -1);
    }
///按顺序打印一个数字的每一个（例如1234打印出1 2 3 4）
/// //法1
public static void print(int n) {
    if(n >= 10) {
        print(n / 10);
    }
    System.out.println(n % 10);
}
//法2
public static void print2(int n) {
    if(n < 10) {
        System.out.println(n % 10);
        return;
    }
    print2(n / 10);
    System.out.println(n % 10);
}
//计算出123 ->1+2+3+...的结果
    //法1
    public static int sum(int n) {
    if(n < 10) {
        return n;
    }
    return n % 10 + sum(n / 10);
    }
    //法2
    public static int sum1(int n) {
    if(n >= 10) {
        return n % 10 + sum1(n / 10);
    }
    return n;
    }
    public static void main(String[] args) {
        function(10);
        System.out.println(fac(5));
        print(123);
        print2(123);
        System.out.println(sum1(123));

    }

}
